//package my.dao.daoImpl;
//
//import my.support.VoIODealer;
//import my.enums.Role;
//import my.vo.voImpl.User;
//
//import java.util.*;
//
///**
// * @author 星环
// * @date 2022/10/31 9:59:01
// * @description User的dao类，有很多重复的属性和字段的说明请看{@link BookDao}
// */
//public class UserDao {
//    private static int idCounter = 1;
//    private final VoIODealer<User> ioDealer;
//    public static List<User> list ;
//
//    private static final UserDao userDao = new UserDao();
//
//    private UserDao(){
//        list = new LinkedList<>();
//        ioDealer = new VoIODealer<>("users");
//        ioDealer.read(list,new User());
//        updateIdCounter();
//    }
//
//    private void updateIdCounter() {
//        int maxid = 1;
//        for (User user : list) {
//            if(user.getId() >= maxid){
//                maxid = user.getId() + 1;
//            }
//        }
//        idCounter = maxid;
//    }
//
//
//    public static UserDao getInstance(){
//        return userDao;
//    }
//
//    protected static int getNewId(){
//        return idCounter++;
//    }
//
//
//
//    public User insert(User user){
//        user.setId(getNewId());
//        list.add(user);
//        return user;
//    }
//
//    /**
//     * 注册前要先检查是否重名，这是用于注册前调用的
//     * @param user 要添加的用户信息
//     */
//    private User insertCheckUserName(User user) {
//        for (User user1 : list) {
//            if(user1.getUsername().equals(user.getUsername())){
//                return null;
//            }
//        }
//        return insert(user);
//    }
//
//    /**
//     * 删除这个人
//     * @param user 要删除的对象
//     * @return 是否删掉了
//     */
//    public boolean delete(User user){
//        Iterator<User> iterator = list.iterator();
//        while (iterator.hasNext()){
//            User now = iterator.next();
//            if(now.equals(user)){
//                iterator.remove();
//                return true;
//            }
//        }
//        return false;
//    }
//
//    public boolean deleteById(int id){
//
//        Iterator<User> iterator = list.iterator();
//        while (iterator.hasNext()){
//            User now = iterator.next();
//            if(now.getId() == id){
//                iterator.remove();
//                return true;
//            }
//        }
//        return false;
//    }
//
//    /**
//     *
//     * @param name
//     * @return 被删除的用户
//     */
//    public User deleteByName(String name){
//
//        Iterator<User> iterator = list.iterator();
//        while (iterator.hasNext()){
//            User now = iterator.next();
//            if(now.getUsername().equals(name)){
//                iterator.remove();
//
//                return now;
//            }
//        }
//        return null;
//    }
//
//    public boolean updateById(User user){
//        if(!"-".equals(user.getUsername())){
//            if (getByNameIgnoreId(user.getUsername(),user.getId())!=null) {//如果要修改用户名而且用户名已经存在
//                return false;
//            }
//        }
//        for (User now : list) {
//            if (now.getId() == user.getId()) {
//                if(!"-".equals(user.getUsername())){
//                    now.setUsername(user.getUsername());
//                }
//                if(!"-".equals(user.getPassword())){
//                    now.setPassword(user.getPassword());
//                }
//                return true;
//            }
//        }
//        return false;
//    }
//
//    private User getByNameIgnoreId(String username, int id) {
//        for (User user : list) {
//            if (user.getId() != id && user.getUsername().equals(username)) {
//                return user;
//            }
//        }
//        return null;
//    }
//
//    public List<User> getAll(){
//        return new ArrayList<>(list);
//    }
//
//    public User getByName(String name){
//        for (User user : list) {
//            if (user.getUsername().equals(name)) {
//                return user;
//            }
//        }
//        return null;
//    }
//
//    public User getById(int id){
//        for (User user : list) {
//            if(user.getId() == id){
//                return user;
//            }
//        }
//        return null;
//    }
//
//    /**
//     * 登录方法
//     * @param username 用户名
//     * @param password 密码
//     * @return 如果登录成功，返回他的信息，用于后续使用，否则返回null
//     */
//    public User login(String username, String password) {
//        User user = getByName(username);
//        if(user != null && user.getPassword().equals(password)){
//            return user;
//        }
//        return null;
//    }
//
//    /**
//     * 注册
//     * @param username
//     * @param password
//     * @return 注册成功，返回用户，重名返回null
//     */
//    public User register(String username, String password) {
//        User user = new User(username, password);
//        user.setRole(Role.READER);
//        return insertCheckUserName(user);
//    }
//
//    public void save(){
//        ioDealer.save(list);
//    }
//}
